Integrated user interface using linked data

ABSTRACT

A computer receives user input regarding at least a first and a second resource. The computer retrieves navigational content for the first and second resource. The computer displays the retrieved navigational content in a single interface. The computer receives user selection of at least one element of the retrieved navigational content. The computer then retrieves page content associated with the selected at least one element of the retrieved navigational content.

CROSS REFERENCE TO RELATED APPLICATION

This application is a Continuation Application of pending U.S. patentapplication Ser. No. 14/032,673 filed Sep. 20, 2013.

FIELD OF THE INVENTION

The present invention relates generally to user interfaces, and moreparticularly to creating and providing an integrated user interfacewhich integrates multiple user interface pages into a single userinterface.

BACKGROUND

In today's information technology (IT) environment, IT solutions play animportant role as they help to deploy solutions faster, reduce cost, andprovide direct solutions to customers based on their requirements.Managing and administering an IT solution often time involves multipleproducts, and also the configuration of each product and the integrationbetween the products. In order to perform configuration and integrationof multiple products for an IT solution, a user or administrator may berequired to traverse across multiple disparate user interfaces frommultiple servers to view a status or perform operations. This can slowdown work and lead to mistakes.

Currently, there is no way for an administrator to obtain an integrateduser interface within the context of a distributed IT environment. Usingcurrent methods, in order to view the user interface in an integratedmanner, it would be necessary to deploy all the relevant products or atleast the user interface applications of each product in a singleserver. A single server deployment of user interface components of eachproduct is impractical due to performance considerations and dependencyissues.

SUMMARY

Embodiments of the present invention provide a system, method, andprogram product for creating an integrated user interface. A computerreceives user input regarding at least a first and a second resource.The computer retrieves navigational content for the first and secondresource. The computer displays the retrieved navigational content in asingle interface. The computer receives user selection of at least oneelement of the retrieved navigational content. The computer thenretrieves page content associated with the selected at least one elementof the retrieved navigational content.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 illustrates an integrated user interface system, in accordancewith an embodiment of the invention.

FIG. 2 is a flowchart illustrating the operations of integrated userinterface program of FIG. 1, in accordance with an embodiment of theinvention.

FIG. 3 is a block diagram depicting the hardware components of theintegrated user interface system of FIG. 1, in accordance with anembodiment of the invention.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method, or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module,” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer-readablemedium(s) having computer readable program code/instructions embodiedthereon.

Any combination of one or more computer-readable medium(s) may beutilized. The computer-readable medium may be a computer-readable signalmedium or a computer-readable storage medium. A computer-readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer-readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer-readable storagemedium may be any tangible medium that can contain, or store, a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer-readable signal medium may include a propagated data signalwith computer-readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer-readable signal medium may be any computer-readable medium thatis not a computer-readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer-readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like, and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on a user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer, other programmabledata processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus, or other devices to produce acomputer-implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Embodiments of the present invention will now be described in detailwith reference to the accompanying Figures.

FIG. 1 illustrates integrated user interface system 100, in accordancewith an embodiment of the invention. Integrated user interface system100 includes computing device 110, central registry 120, product oneserver 114, product two server 116, and product three server 118, allinterconnected over network 130.

In an exemplary embodiment, network 130 is the Internet, representing aworldwide collection of networks and gateways to support communicationsbetween devices connected to the Internet. Network 130 may include, forexample, wired, wireless or fiber optic connections. In otherembodiments, network 130 may be implemented as an intranet, a local areanetwork (LAN), or a wide area network (WAN). In general, network 130 canbe any combination of connections and protocols that will supportcommunications between computing device 110, central registry 120,product one server 114, product two server 116, and product three server118.

Product one server 114 may be a desktop computer, a notebook, a laptopcomputer, a tablet computer, a handheld device, a smart-phone, a thinclient, or any other electronic device or computing system capable ofreceiving and sending data to and from other computing devices vianetwork 130. In the exemplary embodiment, product one server 114 is acomputing device that is optimized for support of network requestsrelated to data regarding a product, product one, which resides on theserver. For example, product one server 114 may be a server or clusterof servers dedicated to responding to network requests related toTivoli® (Tivoli is a registered trademark of IBM Corp.), in which caseTivoli would be product one. Although not shown, optionally, product oneserver 114 can comprise a cluster of web servers executing the same orsimilar software to collectively process network requests as distributedby a front end server and a load balancer. Product one server 114 isdescribed in more detail with reference to FIG. 3.

Product two server 116 may be a desktop computer, a notebook, a laptopcomputer, a tablet computer, a handheld device, a smart-phone, a thinclient, or any other electronic device or computing system capable ofreceiving and sending data to and from other computing devices vianetwork 130. In the exemplary embodiment, product two server 116 is acomputing device that is optimized for support of network requestsrelated to data regarding a product, product two, which resides on theserver. Although not shown, optionally, product two server 116 cancomprise a cluster of web servers executing the same or similar softwareto collectively process network requests as distributed by a front endserver and a load balancer. Product two server 116 is described in moredetail with reference to FIG. 3.

Product three server 118 may be a desktop computer, a notebook, a laptopcomputer, a tablet computer, a handheld device, a smart-phone, a thinclient, or any other electronic device or computing system capable ofreceiving and sending data to and from other computing devices vianetwork 130. In the exemplary embodiment, product three server 118 is acomputing device that is optimized for support of network requestsrelated to data regarding a product, product three, which resides on theserver. Although not shown, optionally, product three server 118 cancomprise a cluster of web servers executing the same or similar softwareto collectively process network requests as distributed by a front endserver and a load balancer. Product three server 118 is described inmore detail with reference to FIG. 3.

Central registry 120 includes product one data 122, product two data124, and product three data 126. In the exemplary embodiment, centralregistry 120 may be a desktop computer, a notebook, a laptop computer, atablet computer, a handheld device, a smart-phone, a thin client, or anyother electronic device or computing system capable of receiving andsending data, such as product registration information, to and fromother computing devices via network 130. Although not shown, optionally,central registry 120 can comprise a cluster of web servers executing thesame or similar software to collectively process network requests asdistributed by a front end server and a load balancer. Central registry120 is described in more detail with reference to FIG. 3.

Product one data 122, product two data 124, and product three data 126are data sets which include registry information for each respectiveproduct. Registry information includes an identifier of theproduct/resource such as a name, a unique number assigned to theproduct, or a URL for the product, dependencies/relationships to otherproducts, and additional URLs for retrieval of other informationrelevant to the product, such as for configuration purposes.

Computing device 110 includes user interface program 112 and integrateduser interface 113. In the exemplary embodiment, central registry 120may be a desktop computer, a notebook, a laptop computer, a tabletcomputer, a handheld device, a smart-phone, a thin client, or any otherelectronic device or computing system capable of receiving and sendingdata, such as product registration information, to and from othercomputing devices via network 130. Although not shown, optionally,central registry 120 can comprise a cluster of web servers executing thesame or similar software to collectively process network requests asdistributed by a front end server and a load balancer. Central registry120 is described in more detail with reference to FIG. 3.

In the exemplary embodiment, integrated user interface 113 includescomponents used to receive input from a user and transmit the input toan application residing on computing device 110. In an exemplaryembodiment, integrated user interface 113 uses a combination oftechnologies and devices, such as device drivers, to provide a platformto enable users of computing device 110 to interact with user interfaceprogram 112. In the exemplary embodiment, integrated user interface 113receives input, such as textual input received from a physical inputdevice, such as a keyboard, via a device driver that corresponds to thephysical input device.

User interface program 112 is a program capable of receiving and sendingdata, such as data related to product one, two, and/or three, to othercomputing devices via network 130. In the exemplary embodiment, userinterface program 112 may then display the data, which may includethings such as navigational content or page content, to the user ofcomputing device 110 via integrated user interface 113. The integrateduser interface is also capable of receiving user input, such as userlogin information, via integrated user interface 113, and then verifyingwhether the user is eligible for access to certain data.

FIG. 2 shows a flowchart illustrating the operations of user interfaceprogram 112 in forming an integrated user interface, in accordance withan exemplary embodiment of the invention. In the exemplary embodiment,user interface program 112 receives user input or a user selection forcontent of one or more resources or products via integrated userinterface 113 (step 202). For example, in an IT environment consistingof IBM Tivoli and Netcool® (Netcool is a registered trademark of IBMCorp.), a user may be interested in viewing content to get assistance inadministration and configuration in order to configure IBM Tivoli toforward events to Netcool. In this example, user interface program 112receives input or a user selection for the products Tivoli and Netcool(input regarding assistance with configuration and administration isreceived at a later time), via integrated user interface 113. In otherembodiments, user interface program 112 receives user input regardingspecific content for one or more resources via integrated user interface113. In this other embodiment, referring to the example above, userinterface program 112 receives input or a user selection for assistancewith configuration and administration for the products Tivoli andNetcool. In addition, in the exemplary embodiment, user interfaceprogram 112 also receives user login information from the user ofcomputing device 110. The relevance and application of the user logininformation is described in greater detail below. In yet anotherembodiment, user interface program 112 does not receive any input oruser selection.

User interface program 112 then queries central registry 120 to identifythe resources which have navigational content (step 204). In theexemplary embodiment, central registry 120 contains data regarding anassortment of products/resources including: an identifier of the productsuch as a name, a URL, or a unique number assigned to the product; a URLor URLs which contain additional information regarding navigationalcontent, configuration, administration, or other product information;and also relationship/dependency data. Relationship/dependency datadescribes relationships between products. For example, a product may bedependent on another product, such as, a product may use a component ofanother product or information from another product, or may be fully orpartially integrated with another product. This relationship/dependencyinformation is stored in association with the relevant product in theform of data stating the relationship between products. For example,relationship information stored in association with product one maystate that product one uses a component of product two, or may provide aURL link to product 2 which provides the relevant dependencyinformation. In this example, relationship information stored inassociation with product two also contains information regarding therelationship between product one and product two. In this step, userinterface program 112 identifies the resources, relevant to the userselection, which have navigational content. Certain products withinformation stored in central registry 120 may not have navigationalcontent. In the exemplary embodiment, user interface 112 analyzes theproduct data, with regard to the products relevant to the userselection, stored in central registry 120 to determine if the producthas a URL or link to navigational content for the product.

User interface program 112 then retrieves navigational content for theproducts identified to have navigational content from the relevantproduct servers (step 206). For example, if user interface program 112receives user selection for assistance with administration andconfiguration with regard to product one, product two and product three,user interface program 112 analyzes product one data 122, product twodata 124, and product three data 126 stored in central registry 120 anddetermines if each product has navigational content. If user interfaceprogram 112 determines that product one and product two havenavigational content, but product three does not, user interface program112 retrieves navigational content for product one and product two fromproduct one server 114 and product two server 116, respectively. Inother embodiments, if user interface program 112 does not receive userinput, user interface program 112 retrieves navigational content for allresources identified to have navigational content, rather than limitingretrieval based on user input or selection.

In addition, while retrieving navigational content, user interfaceprogram 112 simultaneously verifies if the user has access to the targetpages (pages that can be accessed from the navigational content) bycomparing the user login information to a repository. In the exemplaryembodiment, each product server has a repository which states whichusers have access to the content available on the server. For example, auser may have access to the product one administrative content availableon the product one server but may not have access to the product oneconfiguration content. In this case, user interface program 112 onlyretrieves navigational content for the administrative content forproduct one from product one server 114. In other embodiments, userinterface program 112 may retrieve navigational content for productcontent that the user may not have access to; however, user interfaceprogram 112 may return a blank page or empty response if user selectionof such navigational content is made. Referring to the example above, inthis other embodiment, if a user does not have access to product oneconfiguration content, user interface program 112 may still retrievenavigational content for product one configuration content; however, ifthe user subsequently selects an element of the product oneconfiguration navigational content, user interface program 112 does notretrieve the corresponding page content and returns an empty or blankresponse.

User interface program 112 then consolidates the retrieved navigationalcontent and displays the content to the user of computing device 110 viaintegrated user interface 113 (step 208). In the exemplary embodiment,user interface program 112 takes dependencies between products intoaccount when displaying the consolidated navigational content to theuser. For example, if product two is dependent on product one, userinterface program 112 may add the navigational contents of product twoas a component or a sub menu of the product one navigational contents,essentially presenting the relationships between the products to theuser. In addition, if the dependency information specifies that aparticular aspect of product two is dependent on product one, then userinterface program 112 may present the navigational contents to reflectthis dependency. For example, if the dependency information specifiesthat product two depends on product one and the dependency is tagged as“event forwarding”, then only pages that have the tag “event forwarding”may be shown in the product two sub menu of the product one navigationalcontents.

User interface program 112 then receives user selection of at least oneelement of the retrieved navigational content via integrated userinterface 113 (step 210). In the exemplary embodiment, the displayednavigational content provides links or selectable options to specificpage content. Therefore, user selection of at least one element of theretrieved navigational content is based on the portion of the productthe user is interested in.

User interface program 112 then retrieves the page content from theproduct server based on the user selection (step 212). For example, ifthe user is interested in product one and product two, based on userinput, user interface program 112 retrieves the navigational content forproduct one and product two from the respective product servers andpresents the content to the user via integrated user interface 113. Ifthe user then selects the “configuration” selectable option for productone from the navigational content, user interface program 112 retrievesthe “configuration” page content from the product one server 114. In theexemplary embodiment, user interface program 112 then displays theretrieved page contents to the user via integrated user interface 113(step 214).

The foregoing description of various embodiments of the presentinvention has been presented for purposes of illustration anddescription. It is not intended to be exhaustive or to limit theinvention to the precise form disclosed. Many modifications andvariations are possible. Such modifications and variations that may beapparent to a person skilled in the art of the invention are intended tobe included within the scope of the invention as defined by theaccompanying claims.

FIG. 3 depicts a block diagram of components of computing device 110 andserver 120, in accordance with an illustrative embodiment of the presentinvention. It should be appreciated that FIG. 3 provides only anillustration of one implementation and does not imply any limitationswith regard to the environments in which different embodiments may beimplemented. Many modifications to the depicted environment may be made.

Computing device 110 and server 120 include communications fabric 302,which provides communications between computer processor(s) 304, memory306, persistent storage 308, communications unit 312, and input/output(I/O) interface(s) 314. Communications fabric 302 can be implementedwith any architecture designed for passing data and/or controlinformation between processors (such as microprocessors, communicationsand network processors, etc.), system memory, peripheral devices, andany other hardware components within a system. For example,communications fabric 302 can be implemented with one or more buses.

Memory 306 and persistent storage 308 are computer-readable storagemedia. In this embodiment, memory 306 includes random access memory(RAM) 316 and cache memory 318. In general, memory 306 can include anysuitable volatile or non-volatile computer-readable storage media.

The one or more operating systems and programs, integrated userinterface 113, and user interface program 112 in computing device 110;and the one or more operating systems and program product one data,product two data, and product three data in central registry 120, arestored in persistent storage 308 for execution by one or more of therespective computer processors 304 via one or more memories of memory306. In this embodiment, persistent storage 308 includes a magnetic harddisk drive. Alternatively, or in addition to a magnetic hard disk drive,persistent storage 308 can include a solid state hard drive, asemiconductor storage device, read-only memory (ROM), erasableprogrammable read-only memory (EPROM), flash memory, or any othercomputer-readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 308 may also be removable. Forexample, a removable hard drive may be used for persistent storage 308.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer-readable storage medium that is also part of persistent storage08.

Communications unit 312, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 312 includes one or more network interface cards.Communications unit 312 may provide communications through the use ofeither or both physical and wireless communications links. The programs,integrated user interface 113, and user interface program 112 incomputing device 110; and the one or more operating systems and programproduct one data, product two data, and product three data in centralregistry 120, may be downloaded to persistent storage 308 throughcommunications unit 312.

I/O interface(s) 314 allows for input and output of data with otherdevices that may be connected to computing device 110, central registry120, product one server 114, product two server 116, and product threeserver 118. For example, I/O interface 314 may provide a connection toexternal devices 320 such as a keyboard, keypad, a touch screen, and/orsome other suitable input device. External devices 320 can also includeportable computer-readable storage media such as, for example, thumbdrives, portable optical or magnetic disks, and memory cards. Softwareand data used to practice embodiments of the present invention, e.g.,programs, integrated user interface 113, and user interface program 112in computing device 110; and the one or more operating systems andprogram product one data, product two data, and product three data incentral registry 120, can be stored on such portable computer-readablestorage media and can be loaded onto persistent storage 308 via I/Ointerface(s) 314. I/O interface(s) 314 also connect to a display 322.

Display 322 provides a mechanism to display data to a user and may be,for example, a computer monitor.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

What is claimed is:
 1. A method for creating an integrated userinterface, comprising the steps of: a computer receiving user inputregarding at least a first and a second resource; the computerretrieving navigational content for the first and second resource; thecomputer displaying the retrieved navigational content in a singleinterface; the computer receiving user selection of at least one elementof the retrieved navigational content; and the computer retrieving pagecontent associated with the selected at least one element of theretrieved navigational content.
 2. The method of claim 1, furthercomprising the steps of: the computer receiving user input regarding athird resource; and the computer determining that there is nonavigational content for the third resource.
 3. The method of claim 1,wherein the step of the computer receiving user selection of an elementof the retrieved navigational content comprises of the computerreceiving user selection of a first and a second element of theretrieved navigational content.
 4. The method of claim 1, furthercomprising the steps of: the computer receiving user access informationfor a first user; the computer receiving user selection of a first and asecond element of the retrieved navigational content; and the computerdetermining that the user access information allows access to the firstelement but does not allow access to page content associated with thesecond element; and the computer retrieving page content associated withthe first element.
 5. The method of claim 1, further comprising thesteps of: the computer receiving user input regarding a fourth resource;the computer receiving user access information for a first user; and thecomputer determining that the user access information allows access tothe first and second resource but does not allow access to navigationalcontent for the fourth resource.